using Warudo.Core.Attributes;
using System;
using Object = UnityEngine.Object;

namespace Warudo.Plugins.Core.Events
{
    public enum Keystroke : ushort
    {
        Number1 = 0x0002,
        Number2 = 0x0003,
        Number3 = 0x0004,
        Number4 = 0x0005,
        Number5 = 0x0006,
        Number6 = 0x0007,
        Number7 = 0x0008,
        Number8 = 0x0009,
        Number9 = 0x000A,
        Number0 = 0x000B,
        A = 0x001E,
        B = 0x0030,
        C = 0x002E,
        D = 0x0020,
        E = 0x0012,
        F = 0x0021,
        G = 0x0022,
        H = 0x0023,
        I = 0x0017,
        J = 0x0024,
        K = 0x0025,
        L = 0x0026,
        M = 0x0032,
        N = 0x0031,
        O = 0x0018,
        P = 0x0019,
        Q = 0x0010,
        R = 0x0013,
        S = 0x001F,
        T = 0x0014,
        U = 0x0016,
        V = 0x002F,
        W = 0x0011,
        X = 0x002D,
        Y = 0x0015,
        Z = 0x002C,
        Minus = 0x000C,
        EqualsKey = 0x000D,
        Backspace = 0x000E,
        Tab = 0x000F,
        CapsLock = 0x003A,
        OpenBracket = 0x001A,
        CloseBracket = 0x001B,
        BackSlash = 0x002B,
        Semicolon = 0x0027,
        Quote = 0x0028,
        Enter = 0x001C,
        Comma = 0x0033,
        Period = 0x0034,
        Slash = 0x0035,
        Space = 0x0039,
        Printscreen = 0x0E37,
        ScrollLock = 0x0046,
        Insert = 0x0E52,
        Delete = 0x0E53,
        Home = 0x0E47,
        End = 0x0E4F,
        PageUp = 0x0E49,
        PageDown = 0x0E51,
        Up = 0xEE48,
        Down = 0xEE50,
        Left = 0xEE4B,
        Right = 0xEE4D,
        Escape = 0x0001,
        Backquote = 0x0029,
        F1 = 0x003B,
        F2 = 0x003C,
        F3 = 0x003D,
        F4 = 0x003E,
        F5 = 0x003F,
        F6 = 0x0040,
        F7 = 0x0041,
        F8 = 0x0042,
        F9 = 0x0043,
        F10 = 0x0044,
        F11 = 0x0057,
        F12 = 0x0058,
        F13 = 0x005B,
        F14 = 0x005C,
        F15 = 0x005D,
        F16 = 0x0063,
        F17 = 0x0064,
        F18 = 0x0065,
        F19 = 0x0066,
        F20 = 0x0067,
        F21 = 0x0068,
        F22 = 0x0069,
        F23 = 0x006A,
        F24 = 0x006B,
        NumLock = 0x0045,
        NumPadDivide = 0x0E35,
        NumPadMultiply = 0x0037,
        NumPadSubtract = 0x004A,
        NumPadEquals = 0x0E0D,
        NumPadAdd = 0x004E,
        NumPadEnter = 0x0E1C,
        NumPadSeparator = 0x0053,
        NumPad1 = 0x004F,
        NumPad2 = 0x0050,
        NumPad3 = 0x0051,
        NumPad4 = 0x004B,
        NumPad5 = 0x004C,
        NumPad6 = 0x004D,
        NumPad7 = 0x0047,
        NumPad8 = 0x0048,
        NumPad9 = 0x0049,
        NumPad0 = 0x0052,
        NumPadClear = 0xEE00 | NumPad5,
        NumPadDelete = 0xEE00 | NumPadSeparator
    }
}